import { createStore } from 'vuex';

// 定义用户信息类型（与后端返回字段匹配）
interface UserInfo {
  id: string;
  username: string;
  role_id: string; // 新增角色ID字段（假设后端返回）
}

// 定义权限类型（与后端 /role-permissions 接口返回字段匹配）
interface Permission {
  id: string;       // 权限唯一标识（菜单索引）
  name: string;     // 菜单标题
  path: string;     // 菜单路由路径（可选）
  icon: string;     // 菜单图标（对应 Element Plus 图标名）
  parent_id: string;// 父级权限ID（用于构建层级，null 表示一级菜单）
}

export default createStore({
  state: {
    userInfo: null as UserInfo | null,
    userPermissions: [] as Permission[] // 存储用户权限列表
  },
  mutations: {
    setUserInfo(state:any, payload: UserInfo) {
      state.userInfo = payload;
    },
    setUserPermissions(state:any, payload: Permission[]) {
      state.userPermissions = payload;
    },
    clearUserInfo(state:any) { // 可选：退出登录时清除数据
      state.userInfo = null;
      state.userPermissions = [];
    }
  }
});